﻿/*
 * Создан: Оникийчук Антон Игоревич
 * Компания: ООО "ИМСАТ"
 * Дата создания: 29.01.2009
 * Время создания: 18:21
 * Emal разработчика: onikiychuka@gmail.com
 */
using System.Collections.Specialized;

namespace IMSAT.OFTD.DOM
{
    /// <summary>
    /// Общий наследник для коллекций которые зависимы от коллекции node
    /// </summary>
    public class TypedNodeCollection<T> : NodeCollection<T>
        where T : Node
    {
        public TypedNodeCollection(NodeCollection<Node> nc)
        {
            Reset(nc);
            nc.CollectionChanged += delegate(object sender, NotifyCollectionChangedEventArgs e)
                                        {
                                            if (sender is NodeCollection<Node>)
                                            {
                                                Reset(sender as NodeCollection<Node>);
                                            }
                                        };
        }

        public void Reset(NodeCollection<Node> nc)
        {
            Editable = true;
            Clear();
            foreach (Node n in nc)
            {
                if (n is T)
                    Add(n as T);
            }
            Editable = false;
        }
    }
}